Notes and Setup
This is an initial attemmt at compiling the data. Future work includes: 1. Developing more rigorous QAQC procedures 2. Implimenting said procedures 3. Increasing the spead of the database upload…[right now it took over 7.5 hours!]
Water Level QAQC
Plots
This is preliminary data and will undergo more rigurous QAQC at a later date. I will go back and plot individually later as part of the QAQC procedure! :)
[[1]]
[[2]]
[[3]]
[[4]]
[[5]]
[[6]]
[[7]]
[[8]]
[[9]]
[[10]]
[[11]]
[[12]]
[[13]]
[[14]]
[[15]]
[[16]]
[[17]]
[[18]]
[[19]]
[[20]]
[[21]]
NA
Database Import
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
LS0tCnRpdGxlOiAiMy80LzE4IERhdGEgRG93bmxvYWQgJiBQcm9jZXNzaW5nIgpvdXRwdXQ6CiAgaHRtbF9kb2N1bWVudDoKICAgIGRmX3ByaW50OiBwYWdlZAogICAgdG9jOiB5ZXMKICAgIHRvY19mbG9hdDogeWVzCiAgaHRtbF9ub3RlYm9vazoKICAgIHRvYzogeWVzCiAgICB0b2NfZmxvYXQ6IHllcwotLS0KCiNOb3RlcyBhbmQgU2V0dXAKClRoaXMgaXMgYW4gaW5pdGlhbCBhdHRlbW10IGF0IGNvbXBpbGluZyB0aGUgZGF0YS4gIEZ1dHVyZSB3b3JrIGluY2x1ZGVzOgoxLiAgRGV2ZWxvcGluZyBtb3JlIHJpZ29yb3VzIFFBUUMgcHJvY2VkdXJlcwoyLiAgSW1wbGltZW50aW5nIHNhaWQgcHJvY2VkdXJlcwozLiAgSW5jcmVhc2luZyB0aGUgc3BlYWQgb2YgdGhlIGRhdGFiYXNlIHVwbG9hZC4uLltyaWdodCBub3cgaXQgdG9vayBvdmVyIDcuNSBob3VycyFdCgoKYGBge3Igc2V0dXAsIGVjaG89RkFMU0UsIHJlc3VsdHM9ImhpZGUiLCB3YXJuaW5nPUZBTFNFLCBtZXNzYWdlPUZBTFNFfQojQ2xlYXIgTWVtb3J5CnJtKGxpc3Q9bHMoYWxsPVRSVUUpKQoKI0xvYWQgUmVxdWlyZWQgUGFja2FnZXMKbGlicmFyeShkcGx5cikgICAKbGlicmFyeShkZXZ0b29scykKbGlicmFyeShSU1FMaXRlKQpsaWJyYXJ5KERCSSkKbGlicmFyeSh4dHMpCmxpYnJhcnkoZHlncmFwaHMpCmxpYnJhcnkoUlBvc3RncmVTUUwpCgojTG9hZCBQYWxtZXIgTGFiIHRvb2xzCnNvdXJjZSgifi9wcmVzc3VyZV90cmFuc2R1Y2Vycy9kYl9nZXRfd2F0ZXJfbGV2ZWxfdHMuUiIpCmRldnRvb2xzOjppbnN0YWxsX2dpdGh1YihyZXBvPSJyb2RtMiIsdXNlcm5hbWU9Imtob25kdWxhIiwgcXVpZXQgPSBGKQpsaWJyYXJ5KHJvZG0yKQoKI0RlZmluZSB3b3JraW5nIGRpcmVjdG9yeSBhbmQgZGF0YWJhc2UgbG9jYXRpb24Kd29ya2luZ19kaXI8LSIvL25mcy9wYWxtZXItZ3JvdXAtZGF0YS9DaG9wdGFuay9OYXRlL1BUX0RhdGEvMjAxODAzMDRfRG93bmxvYWRzLyIKCiNEb3dubG9hZCBEYXRhCm1hc3RlcjwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCJ3ZWxsX2xvZy5jc3YiKSkKCiNDcmVhdGUgdGVtcCBmaWxlCmRpci5jcmVhdGUocGFzdGUwKHdvcmtpbmdfZGlyLCJpbnRlcm1lZGlhdGUiKSkKCiNDb25uZWN0IHRvIGRhdGFiYXNlCmRiIDwtIGRiQ29ubmVjdChQb3N0Z3JlU1FMKCksIAogICAgICAgICAgICAgICAgaG9zdCAgICAgPSAic2VzeW5jLXBvc3RnaXMwMS5yZXNlYXJjaC5zZXN5bmMub3JnIiwKICAgICAgICAgICAgICAgIGRibmFtZSAgID0gImNob3B0YW5rIiwKICAgICAgICAgICAgICAgIHVzZXIgICAgID0gInBhbG1lcmdyb3VwIiwgCiAgICAgICAgICAgICAgICBwYXNzd29yZCA9IHJlYWRsaW5lKHByb21wdD0iRW50ZXIgcGFzc3dvcmQ6ICIpKQpgYGAKCmBgYHtyIGluaXRpYWwtY2hlY2tzLCBlY2hvPUZBTFNFLCByZXN1bHRzPSJoaWRlIn0KI0NoZWNrIHRvIG1ha2Ugc3VyZSBzaXRlIG5hbWVzIGFyZSBpbiBEQi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmE8LWFzLm1hdHJpeChtYXN0ZXJbLCJTaXRlX05hbWUiXSwgbmNvbD0xKQpiPC1nZXRfc2l0ZV9uYW1lc19saWtlKCIgIixkYikjYXMubWF0cml4KGRiR2V0UXVlcnkoZGIsIlNFTEVDVCBTYW1wbGluZ0ZlYXR1cmVDb2RlIEZST00gU2FtcGxpbmdGZWF0dXJlcyIpKQppZihsZW5ndGgoYVshKGEgJWluJSBiKV0pIT0wKXsKICB3YXJuaW5nKHBhc3RlMCgiU2l0ZSBOYW1lcyBpbiBXZWxsIExvZyBhbmQgRGF0YWJhc2UgZG8gbm90IG1hdGNoISEiKSkKICBwcmludChhWyEoYSAlaW4lIGIpXSkKfWVsc2V7CiAgIlNpdGUgTmFtZXMgTWF0Y2ghIgp9CgojQ2hlY2sgdG8gbWFrZSBzdXJlIFNvbmRlIElEIGluIHdlbGwgbG9nIGFuZCBTZXJpYWwgTnVtYmVyIGluIGZpbGVzIG1hdGNoLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZnVuPC1mdW5jdGlvbihuKXsKICAjUmVhZCBkYXRhCiAgdGVtcDwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCJleHBvcnQvIiwgbG9nc1tuXSksIHNraXA9MSkKICAKICAjZXh0cmFjdCBzZXJpYWwgbnVtYmVyCiAgc2VyaWFsX251bWJlcjwtY29sbmFtZXModGVtcClbZ3JlcCgiTEdSIixjb2xuYW1lcyh0ZW1wKSldWzFdICAjRmluZCBjb2xsdW1uIG5hbWUgd2l0aCBzZXJpYWwgbnVtYmVyCiAgc2VyaWFsX251bWJlcjwtc3Vic3RyKHNlcmlhbF9udW1iZXIsICAgI2lzb2xhdGUgc2VyaWFsIG51bWJlcgogICAgICAgICAgICAgICAgICAgICAgICBncmVnZXhwcigiU0VOLlMuTiIsc2VyaWFsX251bWJlcilbWzFdXVsxXSs5LCAjU3RhcnQKICAgICAgICAgICAgICAgICAgICAgICAgbmNoYXIoc2VyaWFsX251bWJlciktMSkgI3N0b3AKICBzZXJpYWxfbnVtYmVyPC1hcy5udW1lcmljKHNlcmlhbF9udW1iZXIpIAogIAogICNleHBvcnQgc2VyaWFsIG51bWJlcgogIHNlcmlhbF9udW1iZXIKfQojQ3JlYXRlIGxpc3Qgb2YgZmlsZXMgCmxvZ3M8LWxpc3QuZmlsZXMocGFzdGUwKHdvcmtpbmdfZGlyLCJleHBvcnQiKSkKbG9nczwtbG9nc1tsb2dzIT0iYmFyby5jc3YiXQphPC1zYXBwbHkoc2VxKDEsbGVuZ3RoKGxvZ3MpKSwgZnVuKSAgCmI8LW1hc3RlciRTb25kZV9JRCAgCmlmKGxlbmd0aChhWyEoYSAlaW4lIGIpXSkhPTApewogIHdhcm5pbmcocGFzdGUwKCJTb25kZSBzZXJpYWwgbnVtYmVyIGluIFdlbGwgTG9nIGFuZCBkYXRhIGZpbGVzIGRvIG5vdCBtYXRjaCEhIikpCiAgcHJpbnQobG9nc1t3aGljaChhPT1hWyEoYSAlaW4lIGIpXSldKQp9ZWxzZXsKICAiU2VyaWFsIE51bWJlcnMgTWF0Y2giCn0KCiNDaGVjayB1bml0cyBpbiBmaWxlcy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojQ3JlYXRlIGZ1bmN0b2luIHRvIGNoZWNrIHVuaXRzIGluIGZpbGUKZnVuPC1mdW5jdGlvbihuKXsKICAjRG9ud2xvYWQgZGF0YQogIHRlbXA8LXJlYWQuY3N2KHBhc3RlMCh3b3JraW5nX2RpciwiZXhwb3J0LyIsIGxvZ3Nbbl0pLCBza2lwPTEpCiAgCiAgI0NoZWNrIHByZXNzdXJlIHVuaXRzCiAgcHJlc3NfdW5pdHM8LWNvbG5hbWVzKHRlbXApW2dyZXAoImtQYSIsY29sbmFtZXModGVtcCkpXVsxXSAKICBwcmVzc191bml0czwtc3Vic3RyKHByZXNzX3VuaXRzLCAgICNpc29sYXRlIHRlbXBlcmF0dXJlIHVuaXRzCiAgICAgICAgICAgICAgICAgICAgIGdyZWdleHByKCJBYnMuUHJlcyIsIHByZXNzX3VuaXRzKVtbMV1dWzFdKzEwLCAjU3RhcnQKICAgICAgICAgICAgICAgICAgICAgZ3JlZ2V4cHIoIkFicy5QcmVzIiwgcHJlc3NfdW5pdHMpW1sxXV1bMV0rMTIpICNzdG9wCgogICNDaGVjayB0ZW1wIHVuaXRzCiAgdGVtcF91bml0czwtY29sbmFtZXModGVtcClbZ3JlcCgiVGVtcCIsY29sbmFtZXModGVtcCkpXVsxXSAKICB0ZW1wX3VuaXRzPC1zdWJzdHIodGVtcF91bml0cywgICAjaXNvbGF0ZSB0ZW1wZXJhdHVyZSB1bml0cwogICAgICAgICAgICAgICAgICAgICBncmVnZXhwcigiVGVtcCIsIHRlbXBfdW5pdHMpW1sxXV1bMV0rNywgI1N0YXJ0CiAgICAgICAgICAgICAgICAgICAgIGdyZWdleHByKCJUZW1wIiwgdGVtcF91bml0cylbWzFdXVsxXSs3KSAjc3RvcAogIAogICNQcmludCB1bml0cwogIGRhdGEuZnJhbWUoZmlsZW5hbWU9bG9nc1tuXSwgCiAgICAgICAgICAgICBwcmVzc3VyZT1wcmVzc191bml0cywgCiAgICAgICAgICAgICB0ZW1wZXJhdHVyZT10ZW1wX3VuaXRzKQp9Cng8LWxhcHBseShzZXEoMSwgbGVuZ3RoKGxvZ3MpKSwgZnVuKQp4PC1kYXRhLmZyYW1lKGRvLmNhbGwocmJpbmQseCkpCnByaW50KHgpCmBgYAoKYGBge3IgcHQtZGF0YS13cmFuZ2xpbmcsIGVjaG89RkFMU0UsIHJlc3VsdHM9ImhpZGUifQojY3JlYXRlIGZ1bmN0aW9uIHRvIGRvd25sb2FkIGxvZ3MsIGNsZWFuLCBhbmQgcmV3cml0ZSBpbiB0ZW1wIGZvbGRlcgpmdW48LWZ1bmN0aW9uKG4pewogICNTZXR1cH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAjUmVhZCBkYXRhCiAgZGY8LXJlYWQuY3N2KHBhc3RlMCh3b3JraW5nX2RpciwiZXhwb3J0LyIsIGxvZ3Nbbl0pLCBza2lwPTEpCiAgCiAgI0RlZmluZSBzZXJpYWwgbnVtYmVyCiAgc2VyaWFsX251bWJlcjwtY29sbmFtZXMoZGYpW2dyZXAoIkxHUiIsY29sbmFtZXMoZGYpKV1bMV0gICNGaW5kIGNvbGx1bW4gbmFtZSB3aXRoIHNlcmlhbCBudW1iZXIKICBzZXJpYWxfbnVtYmVyPC1zdWJzdHIoc2VyaWFsX251bWJlciwgICAjaXNvbGF0ZSBzZXJpYWwgbnVtYmVyCiAgICAgICAgICAgICAgICAgICAgICAgIGdyZWdleHByKCJTRU4uUy5OIixzZXJpYWxfbnVtYmVyKVtbMV1dWzFdKzksICNTdGFydAogICAgICAgICAgICAgICAgICAgICAgICBuY2hhcihzZXJpYWxfbnVtYmVyKS0xKSAjc3RvcAogIHNlcmlhbF9udW1iZXI8LWFzLm51bWVyaWMoc2VyaWFsX251bWJlcikgCiAgCiAgI0RldGVybWluZSB0aW1lem9uZSBvZmZzZXQgaW4gc2Vjb25kcwogIHRpbWVfb2Zmc2V0PC1jb2xuYW1lcyhkZilbZ3JlcCgiR01UIixjb2xuYW1lcyhkZikpXSAgI0dyYWIgY29sbHVtbiBuYW1lIHcvIHRpbWUgb2Zmc2V0CiAgdGltZV9vZmZzZXQ8LWFzLm51bWVyaWMoc3Vic3RyKHRpbWVfb2Zmc2V0LCAxNiwxOCkpKjM2MDArYXMubnVtZXJpYyhzdWJzdHIodGltZV9vZmZzZXQsIDE5LDIwKSkqNjAKICAKICAjRGVmaW5lIHZhcmlhYmxlcyBmcm9tIHdlbGwgbG9nCiAgc2l0ZV9uYW1lPC1tYXN0ZXIkU2l0ZV9OYW1lW21hc3RlciRTb25kZV9JRD09c2VyaWFsX251bWJlcl0KICBkZXBsb3ltZW50PC1zdHJwdGltZShwYXN0ZShtYXN0ZXIkRGF0ZVttYXN0ZXIkU29uZGVfSUQ9PXNlcmlhbF9udW1iZXJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hc3RlciRUaW1lW21hc3RlciRTb25kZV9JRD09c2VyaWFsX251bWJlcl0pLCAKICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQ9IiVtLyVkLyVZICVIOiVNIiwgdHo9IkdNVCIpCiAgZGVwbG95bWVudDwtZGVwbG95bWVudC10aW1lX29mZnNldAogIHJlbGF0aXZlX3dsPC1tYXN0ZXIkUmVsYXRpdmVfV2F0ZXJfTGV2ZWxfbVttYXN0ZXIkU29uZGVfSUQ9PXNlcmlhbF9udW1iZXJdCiAgICBpZihpcy5uYShyZWxhdGl2ZV93bCk9PVQpe3JlbGF0aXZlX3dsPC0wfQogIGJhcm9fZmlsZTwtbWFzdGVyJGJhcm9fZmlsZVttYXN0ZXIkU29uZGVfSUQ9PXNlcmlhbF9udW1iZXJdCiAgCiAgI3dhdGVyIGxldmVsIHRpbWUgc2VyZWlzfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgI3N1YnNldCBkYXRhZnJhbWUgdG8gdGVtcCwgYWJzX3ByZXMsIGFuZCB0ZW1wCiAgZGY8LWRmWyxjKDIsMyw0KV0KICBjb2xuYW1lcyhkZik8LWMoIlRpbWVzdGFtcCIsICJwcmVzc3VyZUFic29sdXRlIiwgInRlbXBfYyIpCiAgCiAgI2Zvcm1hdCBkYXRlX3RpbWUKICBkZiRUaW1lc3RhbXA8LXN0cnB0aW1lKGRmJFRpbWVzdGFtcCwgIiVtLyVkLyV5ICVJOiVNOiVTICVwIiktdGltZV9vZmZzZXQKICBkZiRUaW1lc3RhbXA8LWFzLlBPU0lYY3QoZGYkVGltZXN0YW1wKQogIAogICNiYXJvIGZpbGUgdGltZSBzZXJpZXN+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAjU3Vic2V0IGRhdGFmcmFtZSB0byB0ZW1wLCBhYnNfcHJlcywgYW5kIHRlbXAKICBiYXJvPC1yZWFkLmNzdihwYXN0ZTAod29ya2luZ19kaXIsImV4cG9ydC8iLCBiYXJvX2ZpbGUpLCBza2lwPTEpCiAgYmFybzwtYmFyb1ssYygyLDMsNCldCiAgY29sbmFtZXMoYmFybyk8LWMoIlRpbWVzdGFtcCIsICJiYXJvbWV0cmljUHJlc3N1cmUiLCAidGVtcF9jIikKICAKICAjZm9ybWF0IGRhdGUgYW5kIHRpbWUKICBiYXJvJFRpbWVzdGFtcDwtc3RycHRpbWUoYmFybyRUaW1lc3RhbXAsICIlbS8lZC8leSAlSTolTTolUyAlcCIpLXRpbWVfb2Zmc2V0CiAgYmFybyRUaW1lc3RhbXA8LWFzLlBPU0lYY3QoYmFybyRUaW1lc3RhbXApCiAgCiAgI0NhY2x1Y3VsYXRlIHdhdGVybGV2ZWx+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgI2NyZWF0ZSBiYXJvIGludGVycG9sYXRpb24gZnVuY3Rpb24KICBiYXJvX2Z1bjwtYXBwcm94ZnVuKGJhcm8kVGltZXN0YW1wLCBiYXJvJGJhcm9tZXRyaWNQcmVzc3VyZSkKICAKICAjY2FsY3VsYXRlIGJhcm8gZm9yIGVhY2ggZGYgdGltZSBzdGVwCiAgZGYkYmFyb21ldHJpY1ByZXNzdXJlPC1iYXJvX2Z1bihkZiRUaW1lc3RhbXApCiAgCiAgI0NhY2x1YXRlIGdhZ2UgcHJlc3N1cmUKICBkZiRwcmVzc3VyZUdhdWdlPC1kZiRwcmVzc3VyZUFic29sdXRlLWRmJGJhcm9tZXRyaWNQcmVzc3VyZQogIAogICNDYWxjdWxhdGUgcmVsYXRpdmUgd2F0ZXIgbGV2ZWwKICBkZiRnYWdlSGVpZ2h0PC1kZiRwcmVzc3VyZUdhdWdlLzkuODEKICAKICAjV2F0ZXIgTGV2ZWwKICBkZiR3YXRlckxldmVsPC1kZiRnYWdlSGVpZ2h0K3JlbGF0aXZlX3dsCiAgCiAgI1BydW5lIHdhdGVyIGxldmVsIGJhc2VkIG9uIGRlcGxveW1lbnQgdGltZQogIGRmPC1kZltkZiRUaW1lc3RhbXA8ZGVwbG95bWVudCxdCiAgZGY8LW5hLm9taXQoZGYpCiAgCiAgI2FkZCAib2Zmc2V0IGNvbGx1bW4iCiAgZGYkb2Zmc2V0PC0wCiAgCiAgI2RlbGV0ZSBwb3RlbnRpYWwgZHVwbGljYXRlcwogIGRmPC1kZlshZHVwbGljYXRlZChkZiksXQogIAogICNXcml0ZSBkZiB0byB0ZW1wIGZpbGUKICB3cml0ZS5jc3YoZGYsIHBhc3RlMCh3b3JraW5nX2RpciwiaW50ZXJtZWRpYXRlLyIsIHNlcmlhbF9udW1iZXIsIi5jc3YiKSkKfQoKI0NyZWF0ZSBsaXN0IG9mIFBUIGZpbGVzCmxvZ3M8LWxpc3QuZmlsZXMocGFzdGUwKHdvcmtpbmdfZGlyLCJleHBvcnQiKSkKbG9nczwtbG9nc1tsb2dzIT0iYmFyby5jc3YiXQoKI2NyZWF0ZSB0ZW1wIGZpbGUgdG8gc3RvcmUgaW50ZXJtZWRpYXRlIGZpbGVzCmRpci5jcmVhdGUocGFzdGUwKHdvcmtpbmdfZGlyLCJpbnRlcm1lZGlhdGUiKSkKCiNSdW4gZnVuY3Rpb24gCmxhcHBseShzZXEoMSwgbGVuZ3RoKGxvZ3MpKSwgZnVuKQpgYGAKCiNXYXRlciBMZXZlbCBRQVFDCmBgYHtyIHRzX3Bsb3QgZnVuY3Rpb24sIGVjaG89RkFMU0UsIHJlc3VsdHM9ImhpZGUifQpmdW48LWZ1bmN0aW9uKG4pewogICNSZWFkIGRmCiAgZGY8LXJlYWQuY3N2KHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQogIGRmJFRpbWVzdGFtcDwtYXMuUE9TSVhjdChkZiRUaW1lc3RhbXApCiAgZGYkd2F0ZXJMZXZlbDwtZGYkd2F0ZXJMZXZlbCoxMDArMTAwMCAKICAKICAjcHVsbCB3YXRlciBsZXZlbCBmcm9tIGRhdGFiYXNlCiAgZGZfaGlzdG9yaWM8LU5VTEwjZGJfZ2V0X3dhdGVyX2xldmVsX3RzKGRiLHBhc3RlKG1hc3RlciRTaXRlX05hbWVbbl0pKQogIAogICNGb3JtYXQgZGYKICBpZihsZW5ndGgoZGZfaGlzdG9yaWMpPT0wKXsKICAgIGRmIDwtIGRmICU+JSBzZWxlY3QoVGltZXN0YW1wLCB3YXRlckxldmVsKQogICAgZGZfeHRzPC14dHMoZGYsIG9yZGVyLmJ5PWRmJFRpbWVzdGFtcCkKICAgIGRmX3h0czwtZGZfeHRzWywtMV0KICB9ZWxzZXsKICAgICNhZGQgZGF0dW0gY29ycmVjdGlvbiB0byBkZl9oaXN0b3JpYwogICAgZGYgPC0gZGYgJT4lIHNlbGVjdChUaW1lc3RhbXAsIHdhdGVyTGV2ZWwpCiAgICBkZl9oaXN0b3JpYyR3YXRlckxldmVsPC1kZl9oaXN0b3JpYyR3YXRlckxldmVsKjEwMCsxMDAwICAKICAgIGRmX2hpc3RvcmljPC1kZl9oaXN0b3JpY1ssYygiVGltZXN0YW1wIiwid2F0ZXJMZXZlbCIpXQogICAgZGZfaGlzdG9yaWMkZ3JvdXA8LSJvbGQiCiAgICBkZiRncm91cDwtIm5ldyIKICAgIGRmPC1yYmluZChkZl9oaXN0b3JpYywgZGYpCiAgICBkZl9zcHJlYWQgPC0gZGYgJT4lIAogICAgICAgZHBseXI6OnNlbGVjdChUaW1lc3RhbXAsIGdyb3VwLCB3YXRlckxldmVsKSAlPiUKICAgICAgIHRpZHlyOjpzcHJlYWQoa2V5ID0gZ3JvdXAsIHZhbHVlID0gd2F0ZXJMZXZlbCkKICAgIGRmX3h0czwteHRzKGRmX3NwcmVhZCwgb3JkZXIuYnk9ZGZfc3ByZWFkJFRpbWVzdGFtcCkKICAgIGRmX3h0czwtZGZfeHRzWywtMV0KICAgIH0KICAKICAjUGxvdAogIHRzX3Bsb3Q8LWR5Z3JhcGgoZGZfeHRzLCBtYWluPW1hc3RlciRTaXRlX05hbWVbbl0pICU+JQogICAgICAgICAgICAgIGR5UmFuZ2VTZWxlY3RvcigpICU+JQogICAgICAgICAgICAgIGR5TGVnZW5kKCkgJT4lCiAgICAgICAgICAgICAgZHlPcHRpb25zKHN0cm9rZVdpZHRoID0gMS41KSAlPiUKICAgICAgICAgICAgICBkeU9wdGlvbnMobGFiZWxzVVRDID0gVFJVRSkgJT4lCiAgICAgICAgICAgICAgZHlIaWdobGlnaHQoaGlnaGxpZ2h0Q2lyY2xlU2l6ZSA9IDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodFNlcmllc0JhY2tncm91bmRBbHBoYSA9IDAuMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZU9uTW91c2VPdXQgPSBGQUxTRSkgJT4lCiAgICAgICAgICAgICAgZHlBeGlzKCJ5IiwgbGFiZWwgPSAiV2F0ZXIgTGV2ZWwgW2NtXSIpCiAgCiAgI0V4cG9ydCBQbG90CiAgcmV0dXJuKHRzX3Bsb3QpCn0KYGBgCgojI1Bsb3RzClRoaXMgaXMgcHJlbGltaW5hcnkgZGF0YSBhbmQgd2lsbCB1bmRlcmdvIG1vcmUgcmlndXJvdXMgUUFRQyBhdCBhIGxhdGVyIGRhdGUuIEkgd2lsbCBnbyBiYWNrIGFuZCBwbG90IGluZGl2aWR1YWxseSBsYXRlciBhcyBwYXJ0IG9mIHRoZSBRQVFDIHByb2NlZHVyZSEgOikgCgpgYGB7ciwgZWNobz1GQUxTRX0KbGFwcGx5KHNlcSgxLCBsZW5ndGgobWFzdGVyJFNpdGVfTmFtZSkpLCBmdW4pCmBgYAoKI0RhdGFiYXNlIEltcG9ydApgYGB7ciBkYXRhYmFzZSBpbXBvcnQsIGVjaG89RkFMU0V9CiNDcmVhdGUgZnVuY3Rpb24KZnVuPC1mdW5jdGlvbihuKXsKICAjRG93bmxvYWQgaW50ZXJtZWRpYXRlIHRzIGRhdGEKICBkZjwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCJpbnRlcm1lZGlhdGUvIiwgbG9nc1tuXSkpCiAgZGY8LWRmWyxjKCJUaW1lc3RhbXAiLCJ3YXRlckxldmVsIildCiAgZGYkVGltZXN0YW1wPC1hcy5QT1NJWGN0KGRmJFRpbWVzdGFtcCkKCiAgI1NvbmRlIElECiAgc248LWFzLm51bWVyaWMoc3Vic3RyKGxvZ3Nbbl0sIDEsbmNoYXIobG9nc1tuXSktNCkpCiAgCiAgI0NyZWF0ZSB2YXJpYWJsZSBsaXN0CiAgdmFyc19saXN0PC1saXN0KCMicHJlc3N1cmVBYnNvbHV0ZSIgICAgPSBsaXN0KGNvbHVtbiA9ICJwcmVzc3VyZUFic29sdXRlIiwgICB1bml0cyA9ICJLUGEiKSwKICAgICAgICAgICAgICAgICAgIyJiYXJvbWV0cmljUHJlc3N1cmUiICA9IGxpc3QoY29sdW1uID0gImJhcm9tZXRyaWNQcmVzc3VyZSIsIHVuaXRzID0gIktQYSIpLAogICAgICAgICAgICAgICAgICAjInByZXNzdXJlR2F1Z2UiICAgICAgID0gbGlzdChjb2x1bW4gPSAicHJlc3N1cmVHYXVnZSIsICAgICAgdW5pdHMgPSAiS1BhIiksCiAgICAgICAgICAgICAgICAgICMiZ2FnZUhlaWdodCIgICAgICAgICAgPSBsaXN0KGNvbHVtbiA9ICJnYWdlSGVpZ2h0IiwgICAgICAgICB1bml0cyA9ICJNZXRlciIpLAogICAgICAgICAgICAgICAgICAiV2F0ZXIgbGV2ZWwiICAgICAgICAgID0gbGlzdChjb2x1bW4gPSAid2F0ZXJMZXZlbCIsICAgICAgICAgdW5pdHMgPSAiTWV0ZXIiKSkjLAogICAgICAgICAgICAgICAgICAjIm9mZnNldCIgICAgICAgICAgICAgID0gbGlzdChjb2x1bW4gPSAib2Zmc2V0IiwgICAgICAgICAgICAgdW5pdHMgPSAiTWV0ZXIiKSkKCiAgI0luc2VydCBkYXRhIGludG8gZGF0YWJhc2UKICB0MDwtU3lzLnRpbWUoKQogIGRiX2luc2VydF9yZXN1bHRzX3RzKGRiID0gZGIsICMgZGF0YWJhc2UgY29ubmVjdG9uCiAgICAgICAgICAgICAgICAgICAgICAgZGF0YXZhbHVlcyA9IGRmLCAjIGRhdGEgZnJhbWUgb2YgdGltZSBzZXJpZXMgZGF0YQogICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA9ICJQVF9Eb3dubG9hZCIsCiAgICAgICAgICAgICAgICAgICAgICAgc2l0ZV9jb2RlID0gYXMuY2hhcmFjdGVyKG1hc3RlciRTaXRlX05hbWVbbWFzdGVyJFNvbmRlX0lEPT1zbl0pLAogICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlcyA9IHZhcnNfbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICBzYW1wbGVkbWVkaXVtID0gIkxpcXVpZCBhcXVlb3VzIiwKICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25ieSA9ICJOYXRlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgZXF1aXBtZW50X25hbWUgPSBhcy5jaGFyYWN0ZXIobWFzdGVyJFNvbmRlX0lEW21hc3RlciRTb25kZV9JRD09c25dKSkKICB0ZjwtU3lzLnRpbWUoKQogIHRmLXQwCn0KCiNDcmVhdGUgbGlzdCBvZiBpbnRlcm1lZGlhdGUgZmlsZXMKbG9nczwtbGlzdC5maWxlcyhwYXN0ZTAod29ya2luZ19kaXIsImludGVybWVkaWF0ZSIpKQpsb2dzPC1sb2dzW2xvZ3MhPXBhc3RlMChtYXN0ZXIkU29uZGVfSURbbWFzdGVyJFNpdGVfTmFtZT09IkdyZWcgQ2F0Y2htZW50IE91dGxldCJdLCIuY3N2IildCmxvZ3M8LWxvZ3NbbG9ncyE9cGFzdGUwKG1hc3RlciRTb25kZV9JRFttYXN0ZXIkU2l0ZV9OYW1lPT0iRG9nYm9uZSBDYXRjaG1lbnQgT3V0bGV0Il0sIi5jc3YiKV0KbG9nczwtbG9nc1tsb2dzIT1wYXN0ZTAobWFzdGVyJFNvbmRlX0lEW21hc3RlciRTaXRlX05hbWU9PSJTb2x1dGUgQ2F0Y2htZW50IE91dGxldCJdLCIuY3N2IildCgojUnVuIGZ1bmN0aW9uCnQwPC1TeXMudGltZSgpCmZvcihpIGluIDE6bGVuZ3RoKGxvZ3MpKXsKICBwcmludChpKQogIGZ1bihpKQp9CnRmPC1TeXMudGltZSgpCnRmLXQwCgojRGlzY29ubmVjdCBmcm9tIERCCmRiRGlzY29ubmVjdChkYikKYGBgCg==